package client.interfaces;

import java.rmi.Remote;
import java.rmi.RemoteException;

import client.entities.ClientVO;
import client.exceptions.BadClientException;
import client.exceptions.ClientNotHereException;
import client.exceptions.IncompleteClientException;
import client.exceptions.MissingClientException;
import dbExceptions.DataBaseErrorException;

public interface ClientRemoteMgt extends Remote {

	void addClient(ClientVO client) throws RemoteException,
			IncompleteClientException, MissingClientException,
			DataBaseErrorException, BadClientException;

	void updateClient(ClientVO client) throws RemoteException,
			IncompleteClientException, MissingClientException,
			BadClientException, DataBaseErrorException;

	void deleteClient(ClientVO cli) throws RemoteException,
			MissingClientException, DataBaseErrorException, BadClientException;

	ClientVO[] getClients() throws RemoteException;

	ClientVO getClient(int ci) throws RemoteException, ClientNotHereException;

}
